Micron Document
🎖️GitЯра🎖️

Node / meshtastic / Meshtastic-Android / files / androidApp / src / test / kotlin / org / meshtastic / app / ShareMessageDeepLinkTest.kt

Displaying Raw • Download

androidApp/src/test/kotlin/org/meshtastic/app/ShareMessageDeepLinkTest.kt 65a1f5ce4d0e4b8eafcd0bbfccafd41dc6ee888a (65a1f5ce) Text, 3.81 KB

T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.app

Tff7b72import T7ee787android.app.PendingIntent
Tff7b72import T7ee787android.content.Intent
Tff7b72import T7ee787androidx.test.core.app.ApplicationProvider
Tff7b72import T7ee787org.junit.After
Tff7b72import T7ee787org.junit.runner.RunWith
Tff7b72import T7ee787org.meshtastic.core.common.util.CommonUri
Tff7b72import T7ee787org.meshtastic.core.navigation.ContactsRoute
Tff7b72import T7ee787org.meshtastic.core.navigation.DeepLinkRouter
Tff7b72import T7ee787org.robolectric.Robolectric
Tff7b72import T7ee787org.robolectric.RobolectricTestRunner
Tff7b72import T7ee787org.robolectric.Shadows.shadowOf
Tff7b72import T7ee787org.robolectric.annotation.Config
Tff7b72import T7ee787org.robolectric.util.ReflectionHelpers
Tff7b72import T7ee787kotlin.test.Test
Tff7b72import T7ee787kotlin.test.assertEquals
Tff7b72import T7ee787kotlin.test.assertNull

Tf0883e@RunWithTb4b4b4(Te6edf3RobolectricTestRunnerTff7b72::Te6edf3classTb4b4b4)
Tf0883e@ConfigTb4b4b4(Te6edf3sdk Tff7b72= Tff7b72[T79c0ff3T79c0ff4Tff7b72]Tb4b4b4)
Tff7b72class T56d364ShareMessageDeepLinkTest Tb4b4b4{

Tf0883e@After
Tff7b72fun Td2a8fftearDownTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// No `application =` override, so Robolectric boots the manifest's real MeshUtilApplication and its
T8b949e// background init; stop it here or its failures land on whichever test runs next in this JVM.
Te6edf3ApplicationProviderTb4b4b4.Te6edf3getApplicationContextTff7b72<Te6edf3MeshUtilApplicationTff7b72>Tb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3cancelBackgroundInitTb4b4b4(Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ff`shared text round trips through the deep link query`Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3messages Tff7b72=
Te6edf3listOfTb4b4b4(
Ta5d6ff"Ta5d6ffcamp & ridge #4Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffquestion? answer=yes + backupTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffline oneTa5d6ff\Ta5d6ffnline twoTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffemoji 🦙 and non-Latin 北山Ta5d6ff"Tb4b4b4,
Tb4b4b4)

Te6edf3messagesTb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3message Tff7b72-Tff7b72>
Tff7b72val Te6edf3deepLink Tff7b72= Te6edf3createShareMessageDeepLinkTb4b4b4(Te6edf3messageTb4b4b4)

Te6edf3assertEqualsTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3deepLinkTb4b4b4.Te6edf3getQueryParameterTb4b4b4(Ta5d6ff"Ta5d6ffmessageTa5d6ff"Tb4b4b4)Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3setOfTb4b4b4(Ta5d6ff"Ta5d6ffmessageTa5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3deepLinkTb4b4b4.Te6edf3queryParameterNamesTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3deepLinkTb4b4b4.Te6edf3fragmentTb4b4b4)
Te6edf3assertEqualsTb4b4b4(
Te6edf3listOfTb4b4b4(Te6edf3ContactsRouteTb4b4b4.Te6edf3ContactsTb4b4b4, Te6edf3ContactsRouteTb4b4b4.Te6edf3ShareTb4b4b4(Te6edf3messageTb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3DeepLinkRouterTb4b4b4.Te6edf3routeTb4b4b4(Te6edf3CommonUriTb4b4b4.Te6edf3parseTb4b4b4(Te6edf3deepLinkTb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ff`share callback pending intent carries the encoded message deep link`Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3message Tff7b72= Ta5d6ff"Ta5d6ffcamp & ridge #4? answer=yes + backupTa5d6ff"
Tff7b72val Te6edf3activity Tff7b72= Te6edf3RobolectricTb4b4b4.Te6edf3buildActivityTb4b4b4(Te6edf3MainActivityTff7b72::Te6edf3classTb4b4b4.Te6edf3javaTb4b4b4)Tb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)

Tff7b72val Te6edf3pendingIntent Tff7b72=
Te6edf3ReflectionHelpersTb4b4b4.Te6edf3callInstanceMethodTff7b72<Te6edf3PendingIntentTff7b72>Tb4b4b4(
Te6edf3activityTb4b4b4,
Ta5d6ff"Ta5d6ffcreateShareIntentTa5d6ff"Tb4b4b4,
Te6edf3ReflectionHelpersTb4b4b4.Te6edf3ClassParameterTb4b4b4.Te6edf3fromTb4b4b4(Tffa657StringTff7b72::Te6edf3classTb4b4b4.Te6edf3javaTb4b4b4, Te6edf3messageTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72val Te6edf3callbackIntent Tff7b72= Te6edf3shadowOfTb4b4b4(Te6edf3pendingIntentTb4b4b4)Tb4b4b4.Te6edf3savedIntent

Te6edf3assertEqualsTb4b4b4(Te6edf3IntentTb4b4b4.Te6edf3ACTION_VIEWTb4b4b4, Te6edf3callbackIntentTb4b4b4.Te6edf3actionTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3MainActivityTff7b72::Te6edf3classTb4b4b4.Te6edf3javaTb4b4b4.Te6edf3nameTb4b4b4, Te6edf3callbackIntentTb4b4b4.Te6edf3componentTff7b72?.Te6edf3classNameTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3IntentTb4b4b4.Te6edf3FLAG_ACTIVITY_SINGLE_TOPTb4b4b4, Te6edf3callbackIntentTb4b4b4.Te6edf3flags Te6edf3and Te6edf3IntentTb4b4b4.Te6edf3FLAG_ACTIVITY_SINGLE_TOPTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3callbackIntentTb4b4b4.Te6edf3dataTff7b72?.Te6edf3getQueryParameterTb4b4b4(Ta5d6ff"Ta5d6ffmessageTa5d6ff"Tb4b4b4)Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3setOfTb4b4b4(Ta5d6ff"Ta5d6ffmessageTa5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3callbackIntentTb4b4b4.Te6edf3dataTff7b72?.Te6edf3queryParameterNamesTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3callbackIntentTb4b4b4.Te6edf3dataTff7b72?.Te6edf3fragmentTb4b4b4)
Te6edf3assertEqualsTb4b4b4(
Te6edf3listOfTb4b4b4(Te6edf3ContactsRouteTb4b4b4.Te6edf3ContactsTb4b4b4, Te6edf3ContactsRouteTb4b4b4.Te6edf3ShareTb4b4b4(Te6edf3messageTb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3DeepLinkRouterTb4b4b4.Te6edf3routeTb4b4b4(Te6edf3CommonUriTb4b4b4.Te6edf3parseTb4b4b4(Te6edf3callbackIntentTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}

Served by rngit 1.5.0 - Generated in 0.08s